|
|
|
| Title |
Install and deinstall hotkeys |
| Keywords |
hotkey, accelerator, install hotkey,
RegisterHotKey |
| Categories |
Utilities, Windows, API, Tips and
Tricks | |
|
| A hotkey is a key combination that you can use to trigger
an action anywhere in Windows.
When the form loads, use the RegisterHotKey API function to
install the hotkey (in this example, Alt-F10). Then subclass
to watch for the WM_HOTKEY message. |
|
Private Sub Form_Load()
' Register the hotkey.
If RegisterHotKey(hWnd, HOTKEY_ID, _
MOD_ALT, VK_F10) = 0 _
Then
MsgBox "Error registering hotkey."
Unload Me
End If
' Subclass the TextBox to watch for
' WM_HOTKEY messages.
OldWindowProc = SetWindowLong( _
hWnd, GWL_WNDPROC, _
AddressOf NewWindowProc)
End Sub |
|
| When the new WindowProc sees the WM_HOTKEY message, it
calls the form's public Hotkey subroutine. |
|
' Look for the WM_HOTKEY message.
Public Function NewWindowProc(ByVal hWnd As Long, ByVal Msg _
As Long, ByVal wParam As Long, ByVal lParam As Long) As _
Long
Const WM_NCDESTROY = &H82
Const WM_HOTKEY = &H312
' If we're being destroyed,
' restore the original WindowProc and
' unregister the hotkey.
If Msg = WM_NCDESTROY Then
SetWindowLong _
hWnd, GWL_WNDPROC, _
OldWindowProc
UnregisterHotKey hWnd, HOTKEY_ID
End If
' See if this is the WM_HOTKEY message.
If Msg = WM_HOTKEY Then Form1.Hotkey
' Process the message normally.
NewWindowProc = CallWindowProc( _
OldWindowProc, hWnd, Msg, wParam, _
lParam)
End Function |
|
| In this example, the Hotkey subroutine adds the time to
the form's TextBox. It then makes sure that the form is not
minimized and gives the form the focus. |
|
' We got the hotkey.
Public Sub Hotkey()
txtTimes.Text = txtTimes.Text & _
Time & vbCrLf
txtTimes.SelStart = Len(txtTimes.Text)
If Me.WindowState = vbMinimized Then Me.WindowState = _
vbNormal
Me.SetFocus
End Sub |
| |
 |
| | |
|